
campoActual = null;

/**
 * Muestra el teclado en pantalla y establece el campo de texto actual
 * @param {type} campo
 * @param {type} tipo
 * @returns {undefined}
 */
function mostrarTeclado(campo, tipo) {
    setCampoActual(campo);
    if(tipo === 'ABC') {
        $("#tecladoNumerico").hide("800");
        $("#tecladoAlfabetico").show("800");
    } else {
        $("#tecladoAlfabetico").hide("800");
        $("#tecladoNumerico").show("800");
    }
}


/**
 * Establece el campo de texto actual y valida el campo anterior
 * @param {type} campo
 * @returns {undefined}
 */
function setCampoActual(campo) {
    if(campo !== null) {
        if(campo !== campoActual) {
            if(campoActual !== null) {
                validar();
            }
            campoActual = campo;
        }
    }
}

/**
 * 
 * @returns {undefined}
 */
function ocultarTeclado() {
    $("#tecladoNumerico").hide("800");
    $("#tecladoAlfabetico").hide("800");
}


function teclear(valor) {
    if(valor !== null && campoActual!==null) {
        if(valor === '123') {
            mostrarTeclado(campoActual, '123');
        } else if(valor === 'ABC') {
            mostrarTeclado(campoActual, 'ABC');
        } else if (valor === 'ACEPT') {
            validarTodo();
            ocultarTeclado();
        } else if (valor === 'BACK') {
            nuevo = campoActual.value.substring(0, campoActual.value.length-1);
            campoActual.value = nuevo;
        } else {
            anterior = campoActual.value;
            nuevo = anterior + valor;
            campoActual.value = nuevo;
        }
        campoActual.focus();
    }
}

/**
 * Valida el campo especificado por parametro
 * @param {type} campo
 * @returns {undefined}
 */
function validar() {
    $(campoActual.form)
        .data('bootstrapValidator')
        .updateStatus(campoActual.name, 'NOT_VALIDATED', null)
        .validateField(campoActual.name);
}

/**
 * valida todos los campos
 * @returns {undefined}
 */
function validarTodo() {
    $(campoActual.form)
            .data('bootstrapValidator')
            .resetForm()
            .validate();
}